gusucode.com > 各种VC自绘控件源码程序 > 各种VC自绘控件源码/code/SkinControls(自绘MFC基本控件 )/SkinControls/Test/TestDlg.cpp

    // TestDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "Test.h"
#include "TestDlg.h"
#include ".\testdlg.h"
#include "SkinDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CTestDlg 对话框



CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTestDlg::IDD, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	m_pSkinWnd = NULL;
}

CTestDlg::~CTestDlg()
{
	SafeDelete(m_pSkinWnd);
}

void CTestDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	//}}AFX_MSG_MAP
	ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
	ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButton2)
END_MESSAGE_MAP()


// CTestDlg 消息处理程序

BOOL CTestDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标

	m_pSkinWnd = new CSkinWnd;

	
	return TRUE;  // 除非设置了控件的焦点,否则返回 TRUE
}

// 如果向对话框添加最小化按钮,则需要下面的代码
//  来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
//  这将由框架自动完成。

void CTestDlg::OnPaint() 
{
	CPaintDC dc(this); 

	CxImage	image;
	image.Load("test.bmp", CXIMAGE_FORMAT_BMP);
	image.SetTransIndex(0);
	image.SetTransColor(CxImage::RGBtoRGBQUAD(RGB(255,0,255)));
	image.Draw(dc.m_hDC, 0, 0);
}

//当用户拖动最小化窗口时系统调用此函数取得光标显示。
HCURSOR CTestDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}

void CTestDlg::OnBnClickedButton1()
{
	if (m_pSkinWnd->GetSafeHwnd() == NULL)
		m_pSkinWnd->Create(SKIN_POPUP_WINDOW, NULL, 100);
	m_pSkinWnd->SetWindowText(_T("自绘控件"));
	m_pSkinWnd->CenterWindow();
	m_pSkinWnd->ShowWindow(1);
}

void CTestDlg::OnBnClickedButton2()
{
	CSkinDlg dlg;
	dlg.DoModal();
}